/**
 * ITmPackSerialService.java
 * Created at 2017-2-17
 * Created by xieshuang
 * Copyright (C) 2017 BROADTEXT SOFTWARE, All rights reserved.
 */
package com.broadtext.rms.basic.service;

import java.util.Map;

import com.broadtext.common.bean.EntityPageBean;
import com.broadtext.common.exp.DaoException;
import com.broadtext.common.service.IEntityService;
import com.broadtext.rms.basic.model.TmPackSerial;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;

/**
 * <p>ClassName: ITmPackSerialService</p>
 * <p>Description: 电池id管理Service接口</p>
 * <p>Author: xieshuang</p>
 * <p>Date: 2017-2-17</p>
 */
public interface ITmPackSerialService extends IEntityService<TmPackSerial> {

    /**
     * 
     * <p>Description: 根据主键删除 批量</p>
     * @param ids 主键数组
     * @param currentUser 当前登录人
     * @throws DaoException 异常
     */
    void delete(String[] ids, String currentUser) throws DaoException;
    
    /**
     * 
     * <p>Description: 根据主键删除 批量</p>
     * @param ids 主键数组
     * @param currentUser 当前登录人
     * @throws DaoException 异常
     */
    Map<String, Object> customID(TmPackSerial t) throws DaoException;

    /**
     * 
     * <p>Description: 生成指定数量电池ID</p>
     * @param packQuantity 数量
     * @param currentUser  当前用户
     * @throws DaoException 异常
     */
    boolean createPack(long packQuantity, String currentUser) throws DaoException;

    /**
     * 
     * <p>Description: 查询电池使用情况</p>
     * @return 三个状态使用数量
     * @throws DaoException 异常
     */
    Map<String, Object> getStatusCount() throws DaoException;

    /**
     * 
     * <p>Description: 验证数值是否过大</p>
     * @param packNum 数量
     * @return 布尔值
     * @throws DaoException 异常
     */
    String checkData(long packNum) throws DaoException;

    /**
     * 
     * <p>Description: 检查待删除电池状态是否合法</p>
     * @param ids id数组
     * @return 检查结果
     * @throws DaoException 异常
     */
    Object checkPackStatus(String[] ids) throws DaoException;

    /**
     * 
     * <p>Description: 电池packCode下拉框分页查询</p>
     * @param params 查询条件
     * @param pageBounds 分页
     * @return 结果集
     * @throws DaoException 异常
     */
	EntityPageBean<TmPackSerial> getPackCodeOptions(Map<String, Object> params,
			PageBounds pageBounds) throws DaoException;
	
	/**
     * 
     * <p>Description: 电池packCode下拉框分页查询2</p>
     * @param params 查询条件
     * @param pageBounds 分页
     * @return 结果集
     * @throws DaoException 异常
     */
    EntityPageBean<Object> getPackCodeOptions2(Map<String, Object> params,
            PageBounds pageBounds) throws DaoException;

}
